perm filename SHIPS.SAI[SW,BGB] blob
sn#062493 filedate 1973-09-17 generic text, type T, neo UTF8
00100 BEGIN "SHIPS"
00200 REQUIRE "ABBREV[SYS,BGB]" SOURCE_FILE;
00300 REQUIRE "DPYIII[SYS,BGB]" SOURCE_FILE;
00400 REQUIRE "SAITRG[SYS,BGB]" SOURCE_FILE;
00500 DEFINE SCALE="30";
00600 PROCEDURE VECTOR (REAL L,DIR);
00700 BEGIN
00800 REAL DX,DY,W;
00900 W ← π*DIR/64;
01000 DX ← SCALE * L * SIN(W);
01100 DY ← SCALE * L * COS(W);
01200 RVECT (DX,DY);
01300 END;
01400 PROCEDURE SHIP1;
01500 BEGIN
01600 AIVECT(0,12*SCALE);
01700 VECTOR(4,'70); VECTOR(17,'100); VECTOR(4,'60);
01800 VECTOR(6,'0); VECTOR(4,'160); VECTOR(3,'140);
01900 VECTOR(4,'120); VECTOR(6,'100); VECTOR(4,'20);
02000 VECTOR(3,'40); VECTOR(3,'140); VECTOR(17,'0);
02100 VECTOR(4,'10);
02200 END;
02300 PROCEDURE SHIP2;
02400 BEGIN
02500 AIVECT(0,12*SCALE);
02600 VECTOR(4,'70); VECTOR(19,'100); VECTOR(3,'30);
02700 VECTOR(6,'0); VECTOR(3,'150); VECTOR(3,'140);
02800 VECTOR(3,'130); VECTOR(6,'100); VECTOR(3,'50);
02900 VECTOR(3,'40); VECTOR(3,'140); VECTOR(19,'0);
03000 VECTOR(4,'10);
03100 END;
03200 PROCEDURE SHIP3;
03300 BEGIN
03400 AIVECT(0,12*SCALE);
03500 VECTOR(4,'70); VECTOR(19,'100); VECTOR(3,'40);
03600 VECTOR(6,'0); VECTOR(4,'152); VECTOR(2,'140);
03700 VECTOR(4,'126); VECTOR(6,'100); VECTOR(6,'40);
03800 VECTOR(3,'140); VECTOR(19,'0); VECTOR(4,'10);
03900 END;
04000 PROCEDURE SHIP4;
04100 BEGIN
04200 AIVECT(0,12*SCALE);
04300 VECTOR(4,'70); VECTOR(19,'100); VECTOR(4,'40);
04400 VECTOR(8,'165); VECTOR(2.5,'140); VECTOR(8,'112);
04500 VECTOR(6,'40); VECTOR(2.5,'140);VECTOR(19,'0);
04600 VECTOR(4,'10);
04700 END;
04800 PROCEDURE SHIP5;
04900 BEGIN
05000 AIVECT(0,12*SCALE);
05100 VECTOR(4,'70); VECTOR(19,'100); VECTOR(2,'60);
05200 VECTOR(4,'20); VECTOR(6,'160); VECTOR(4,'140);
05300 VECTOR(6,'120); VECTOR(4,'60); VECTOR(2,'20);
05400 VECTOR(4,'40); VECTOR(3,'140); VECTOR(19,'0);
05500 VECTOR(4,'10);
05600 END;
00100 PROCEDURE SHIP0;
00200 BEGIN
00300 REAL Q;
00400 Q ← SCALE/2;
00500 AIVECT(4*Q,21*Q);
00600 AVECT(-4*Q,21*Q);
00700 AVECT(-4*Q,-10*Q);
00800 AVECT(-11*Q,-10*Q);
00900 AVECT(-11*Q,-23*Q);
01000 AIVECT(-11*Q,-25*Q);DPYSST("DEATH ZONE");
01100 AIVECT(-11*Q,-23*Q);
01200 AVECT(+11*Q,-23*Q);
01300 AVECT(+11*Q,-10*Q);
01400 AVECT( 4*Q,-10*Q);
01500 AVECT( 4*Q, 21*Q);
01600 END;
01700 INTEGER ARRAY DPYBUF[1:1000];
01800 DEFINE SS(X)=
01900 "DPYSET(DPYBUF);SHIP0;AIVECT(0,12*SCALE);X;DPYOUT(1);";
02000 WHILE TRUE DO
02100 BEGIN
02200 SS(SHIP1); INCHRW;
02300 SS(SHIP2); INCHRW;
02400 SS(SHIP3); INCHRW;
02500 SS(SHIP4); INCHRW;
02600 SS(SHIP5); INCHRW;
02700 END;
02800
02900 END "SHIPS";